//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(new String('he' + 'llo') ^ new Object());
write(new String('he' + 'llo') ^ new Object());
write(new String('he' + 'llo') ^ [1, 2, 3]);
write(new String('he' + 'llo') ^ [1 ,2 , 3]);
write(new String('he' + 'llo') ^ new Array(3));
write(new String('he' + 'llo') ^ Array(3));
write(new String('he' + 'llo') ^ new Array(1 ,2 ,3));
write(new String('he' + 'llo') ^ Array(1));
write(new String('he' + 'llo') ^ foo);
write(new Object() ^ undefined);
write(new Object() ^ null);
write(new Object() ^ true);
write(new Object() ^ false);
write(new Object() ^ Boolean(true));
write(new Object() ^ Boolean(false));
write(new Object() ^ new Boolean(true));
write(new Object() ^ new Boolean(false));
write(new Object() ^ NaN);
write(new Object() ^ +0);
write(new Object() ^ -0);
write(new Object() ^ 0);
write(new Object() ^ 0.0);
write(new Object() ^ -0.0);
write(new Object() ^ +0.0);
write(new Object() ^ 1);
write(new Object() ^ 10);
write(new Object() ^ 10.0);
write(new Object() ^ 10.1);
write(new Object() ^ -1);
write(new Object() ^ -10);
write(new Object() ^ -10.0);
write(new Object() ^ -10.1);
write(new Object() ^ Number.MAX_VALUE);
write(new Object() ^ Number.MIN_VALUE);
write(new Object() ^ Number.NaN);
write(new Object() ^ Number.POSITIVE_INFINITY);
write(new Object() ^ Number.NEGATIVE_INFINITY);
write(new Object() ^ new Number(NaN));
write(new Object() ^ new Number(+0));
write(new Object() ^ new Number(-0));
write(new Object() ^ new Number(0));
write(new Object() ^ new Number(0.0));
write(new Object() ^ new Number(-0.0));
write(new Object() ^ new Number(+0.0));
write(new Object() ^ new Number(1));
write(new Object() ^ new Number(10));
write(new Object() ^ new Number(10.0));
write(new Object() ^ new Number(10.1));
write(new Object() ^ new Number(-1));
write(new Object() ^ new Number(-10));
write(new Object() ^ new Number(-10.0));
write(new Object() ^ new Number(-10.1));
write(new Object() ^ new Number(Number.MAX_VALUE));
write(new Object() ^ new Number(Number.MIN_VALUE));
write(new Object() ^ new Number(Number.NaN));
write(new Object() ^ new Number(Number.POSITIVE_INFINITY));
write(new Object() ^ new Number(Number.NEGATIVE_INFINITY));
write(new Object() ^ '');
write(new Object() ^ 0xa);
write(new Object() ^ 04);
write(new Object() ^ 'hello');
write(new Object() ^ 'hel' + 'lo');
write(new Object() ^ String(''));
write(new Object() ^ String('hello'));
write(new Object() ^ String('h' + 'ello'));
write(new Object() ^ new String(''));
write(new Object() ^ new String('hello'));
write(new Object() ^ new String('he' + 'llo'));
write(new Object() ^ new Object());
write(new Object() ^ new Object());
write(new Object() ^ [1, 2, 3]);
write(new Object() ^ [1 ,2 , 3]);
write(new Object() ^ new Array(3));
write(new Object() ^ Array(3));
write(new Object() ^ new Array(1 ,2 ,3));
write(new Object() ^ Array(1));
write(new Object() ^ foo);
write(new Object() ^ undefined);
write(new Object() ^ null);
write(new Object() ^ true);
write(new Object() ^ false);
write(new Object() ^ Boolean(true));
write(new Object() ^ Boolean(false));
write(new Object() ^ new Boolean(true));
write(new Object() ^ new Boolean(false));
write(new Object() ^ NaN);
write(new Object() ^ +0);
write(new Object() ^ -0);
write(new Object() ^ 0);
write(new Object() ^ 0.0);
write(new Object() ^ -0.0);
write(new Object() ^ +0.0);
write(new Object() ^ 1);
write(new Object() ^ 10);
write(new Object() ^ 10.0);
write(new Object() ^ 10.1);
write(new Object() ^ -1);
write(new Object() ^ -10);
write(new Object() ^ -10.0);
write(new Object() ^ -10.1);
write(new Object() ^ Number.MAX_VALUE);
write(new Object() ^ Number.MIN_VALUE);
write(new Object() ^ Number.NaN);
write(new Object() ^ Number.POSITIVE_INFINITY);
write(new Object() ^ Number.NEGATIVE_INFINITY);
write(new Object() ^ new Number(NaN));
write(new Object() ^ new Number(+0));
write(new Object() ^ new Number(-0));
write(new Object() ^ new Number(0));
write(new Object() ^ new Number(0.0));
write(new Object() ^ new Number(-0.0));
write(new Object() ^ new Number(+0.0));
write(new Object() ^ new Number(1));
write(new Object() ^ new Number(10));
write(new Object() ^ new Number(10.0));
write(new Object() ^ new Number(10.1));
write(new Object() ^ new Number(-1));
write(new Object() ^ new Number(-10));
write(new Object() ^ new Number(-10.0));
write(new Object() ^ new Number(-10.1));
write(new Object() ^ new Number(Number.MAX_VALUE));
write(new Object() ^ new Number(Number.MIN_VALUE));
write(new Object() ^ new Number(Number.NaN));
write(new Object() ^ new Number(Number.POSITIVE_INFINITY));
write(new Object() ^ new Number(Number.NEGATIVE_INFINITY));
write(new Object() ^ '');
write(new Object() ^ 0xa);
write(new Object() ^ 04);
write(new Object() ^ 'hello');
write(new Object() ^ 'hel' + 'lo');
write(new Object() ^ String(''));
write(new Object() ^ String('hello'));
write(new Object() ^ String('h' + 'ello'));
write(new Object() ^ new String(''));
write(new Object() ^ new String('hello'));
write(new Object() ^ new String('he' + 'llo'));
write(new Object() ^ new Object());
write(new Object() ^ new Object());
write(new Object() ^ [1, 2, 3]);
write(new Object() ^ [1 ,2 , 3]);
write(new Object() ^ new Array(3));
write(new Object() ^ Array(3));
write(new Object() ^ new Array(1 ,2 ,3));
write(new Object() ^ Array(1));
write(new Object() ^ foo);
write([1, 2, 3] ^ undefined);
write([1, 2, 3] ^ null);
write([1, 2, 3] ^ true);
write([1, 2, 3] ^ false);
write([1, 2, 3] ^ Boolean(true));
write([1, 2, 3] ^ Boolean(false));
write([1, 2, 3] ^ new Boolean(true));
write([1, 2, 3] ^ new Boolean(false));
write([1, 2, 3] ^ NaN);
write([1, 2, 3] ^ +0);
write([1, 2, 3] ^ -0);
write([1, 2, 3] ^ 0);
write([1, 2, 3] ^ 0.0);
write([1, 2, 3] ^ -0.0);
write([1, 2, 3] ^ +0.0);
write([1, 2, 3] ^ 1);
write([1, 2, 3] ^ 10);
write([1, 2, 3] ^ 10.0);
write([1, 2, 3] ^ 10.1);
write([1, 2, 3] ^ -1);
write([1, 2, 3] ^ -10);
write([1, 2, 3] ^ -10.0);
write([1, 2, 3] ^ -10.1);
write([1, 2, 3] ^ Number.MAX_VALUE);
write([1, 2, 3] ^ Number.MIN_VALUE);
write([1, 2, 3] ^ Number.NaN);
write([1, 2, 3] ^ Number.POSITIVE_INFINITY);
write([1, 2, 3] ^ Number.NEGATIVE_INFINITY);
write([1, 2, 3] ^ new Number(NaN));
write([1, 2, 3] ^ new Number(+0));
write([1, 2, 3] ^ new Number(-0));
write([1, 2, 3] ^ new Number(0));
write([1, 2, 3] ^ new Number(0.0));
write([1, 2, 3] ^ new Number(-0.0));
write([1, 2, 3] ^ new Number(+0.0));
write([1, 2, 3] ^ new Number(1));
write([1, 2, 3] ^ new Number(10));
write([1, 2, 3] ^ new Number(10.0));
write([1, 2, 3] ^ new Number(10.1));
write([1, 2, 3] ^ new Number(-1));
write([1, 2, 3] ^ new Number(-10));
write([1, 2, 3] ^ new Number(-10.0));
write([1, 2, 3] ^ new Number(-10.1));
write([1, 2, 3] ^ new Number(Number.MAX_VALUE));
write([1, 2, 3] ^ new Number(Number.MIN_VALUE));
write([1, 2, 3] ^ new Number(Number.NaN));
write([1, 2, 3] ^ new Number(Number.POSITIVE_INFINITY));
write([1, 2, 3] ^ new Number(Number.NEGATIVE_INFINITY));
write([1, 2, 3] ^ '');
write([1, 2, 3] ^ 0xa);
write([1, 2, 3] ^ 04);
write([1, 2, 3] ^ 'hello');
write([1, 2, 3] ^ 'hel' + 'lo');
write([1, 2, 3] ^ String(''));
write([1, 2, 3] ^ String('hello'));
write([1, 2, 3] ^ String('h' + 'ello'));
write([1, 2, 3] ^ new String(''));
write([1, 2, 3] ^ new String('hello'));
write([1, 2, 3] ^ new String('he' + 'llo'));
write([1, 2, 3] ^ new Object());
write([1, 2, 3] ^ new Object());
write([1, 2, 3] ^ [1, 2, 3]);
write([1, 2, 3] ^ [1 ,2 , 3]);
write([1, 2, 3] ^ new Array(3));
write([1, 2, 3] ^ Array(3));
write([1, 2, 3] ^ new Array(1 ,2 ,3));
write([1, 2, 3] ^ Array(1));
write([1, 2, 3] ^ foo);
write([1 ,2 , 3] ^ undefined);
write([1 ,2 , 3] ^ null);
write([1 ,2 , 3] ^ true);
write([1 ,2 , 3] ^ false);
write([1 ,2 , 3] ^ Boolean(true));
write([1 ,2 , 3] ^ Boolean(false));
write([1 ,2 , 3] ^ new Boolean(true));
write([1 ,2 , 3] ^ new Boolean(false));
write([1 ,2 , 3] ^ NaN);
write([1 ,2 , 3] ^ +0);
write([1 ,2 , 3] ^ -0);
write([1 ,2 , 3] ^ 0);
write([1 ,2 , 3] ^ 0.0);
write([1 ,2 , 3] ^ -0.0);
write([1 ,2 , 3] ^ +0.0);
write([1 ,2 , 3] ^ 1);
write([1 ,2 , 3] ^ 10);
write([1 ,2 , 3] ^ 10.0);
write([1 ,2 , 3] ^ 10.1);
write([1 ,2 , 3] ^ -1);
write([1 ,2 , 3] ^ -10);
write([1 ,2 , 3] ^ -10.0);
write([1 ,2 , 3] ^ -10.1);
write([1 ,2 , 3] ^ Number.MAX_VALUE);
write([1 ,2 , 3] ^ Number.MIN_VALUE);
write([1 ,2 , 3] ^ Number.NaN);
write([1 ,2 , 3] ^ Number.POSITIVE_INFINITY);
write([1 ,2 , 3] ^ Number.NEGATIVE_INFINITY);
write([1 ,2 , 3] ^ new Number(NaN));
write([1 ,2 , 3] ^ new Number(+0));
write([1 ,2 , 3] ^ new Number(-0));
write([1 ,2 , 3] ^ new Number(0));
write([1 ,2 , 3] ^ new Number(0.0));
write([1 ,2 , 3] ^ new Number(-0.0));
write([1 ,2 , 3] ^ new Number(+0.0));
write([1 ,2 , 3] ^ new Number(1));
write([1 ,2 , 3] ^ new Number(10));
write([1 ,2 , 3] ^ new Number(10.0));
write([1 ,2 , 3] ^ new Number(10.1));
write([1 ,2 , 3] ^ new Number(-1));
write([1 ,2 , 3] ^ new Number(-10));
write([1 ,2 , 3] ^ new Number(-10.0));
write([1 ,2 , 3] ^ new Number(-10.1));
write([1 ,2 , 3] ^ new Number(Number.MAX_VALUE));
write([1 ,2 , 3] ^ new Number(Number.MIN_VALUE));
write([1 ,2 , 3] ^ new Number(Number.NaN));
write([1 ,2 , 3] ^ new Number(Number.POSITIVE_INFINITY));
write([1 ,2 , 3] ^ new Number(Number.NEGATIVE_INFINITY));
write([1 ,2 , 3] ^ '');
write([1 ,2 , 3] ^ 0xa);
write([1 ,2 , 3] ^ 04);
write([1 ,2 , 3] ^ 'hello');
write([1 ,2 , 3] ^ 'hel' + 'lo');
write([1 ,2 , 3] ^ String(''));
write([1 ,2 , 3] ^ String('hello'));
write([1 ,2 , 3] ^ String('h' + 'ello'));
write([1 ,2 , 3] ^ new String(''));
write([1 ,2 , 3] ^ new String('hello'));
write([1 ,2 , 3] ^ new String('he' + 'llo'));
write([1 ,2 , 3] ^ new Object());
write([1 ,2 , 3] ^ new Object());
write([1 ,2 , 3] ^ [1, 2, 3]);
write([1 ,2 , 3] ^ [1 ,2 , 3]);
write([1 ,2 , 3] ^ new Array(3));
write([1 ,2 , 3] ^ Array(3));
write([1 ,2 , 3] ^ new Array(1 ,2 ,3));
write([1 ,2 , 3] ^ Array(1));
write([1 ,2 , 3] ^ foo);
write(new Array(3) ^ undefined);
write(new Array(3) ^ null);
write(new Array(3) ^ true);
write(new Array(3) ^ false);
write(new Array(3) ^ Boolean(true));
write(new Array(3) ^ Boolean(false));
write(new Array(3) ^ new Boolean(true));
write(new Array(3) ^ new Boolean(false));
write(new Array(3) ^ NaN);
write(new Array(3) ^ +0);
write(new Array(3) ^ -0);
write(new Array(3) ^ 0);
write(new Array(3) ^ 0.0);
write(new Array(3) ^ -0.0);
write(new Array(3) ^ +0.0);
write(new Array(3) ^ 1);
write(new Array(3) ^ 10);
write(new Array(3) ^ 10.0);
write(new Array(3) ^ 10.1);
write(new Array(3) ^ -1);
write(new Array(3) ^ -10);
write(new Array(3) ^ -10.0);
write(new Array(3) ^ -10.1);
write(new Array(3) ^ Number.MAX_VALUE);
write(new Array(3) ^ Number.MIN_VALUE);
write(new Array(3) ^ Number.NaN);
write(new Array(3) ^ Number.POSITIVE_INFINITY);
write(new Array(3) ^ Number.NEGATIVE_INFINITY);
write(new Array(3) ^ new Number(NaN));
write(new Array(3) ^ new Number(+0));
write(new Array(3) ^ new Number(-0));
write(new Array(3) ^ new Number(0));
write(new Array(3) ^ new Number(0.0));
write(new Array(3) ^ new Number(-0.0));
write(new Array(3) ^ new Number(+0.0));
write(new Array(3) ^ new Number(1));
write(new Array(3) ^ new Number(10));
write(new Array(3) ^ new Number(10.0));
write(new Array(3) ^ new Number(10.1));
write(new Array(3) ^ new Number(-1));
write(new Array(3) ^ new Number(-10));
write(new Array(3) ^ new Number(-10.0));
write(new Array(3) ^ new Number(-10.1));
write(new Array(3) ^ new Number(Number.MAX_VALUE));
write(new Array(3) ^ new Number(Number.MIN_VALUE));
write(new Array(3) ^ new Number(Number.NaN));
write(new Array(3) ^ new Number(Number.POSITIVE_INFINITY));
write(new Array(3) ^ new Number(Number.NEGATIVE_INFINITY));
write(new Array(3) ^ '');
write(new Array(3) ^ 0xa);
write(new Array(3) ^ 04);
write(new Array(3) ^ 'hello');
write(new Array(3) ^ 'hel' + 'lo');
write(new Array(3) ^ String(''));
write(new Array(3) ^ String('hello'));
write(new Array(3) ^ String('h' + 'ello'));
write(new Array(3) ^ new String(''));
write(new Array(3) ^ new String('hello'));
write(new Array(3) ^ new String('he' + 'llo'));
write(new Array(3) ^ new Object());
write(new Array(3) ^ new Object());
write(new Array(3) ^ [1, 2, 3]);
write(new Array(3) ^ [1 ,2 , 3]);
write(new Array(3) ^ new Array(3));
write(new Array(3) ^ Array(3));
write(new Array(3) ^ new Array(1 ,2 ,3));
write(new Array(3) ^ Array(1));
write(new Array(3) ^ foo);
write(Array(3) ^ undefined);
write(Array(3) ^ null);
write(Array(3) ^ true);
write(Array(3) ^ false);
write(Array(3) ^ Boolean(true));
write(Array(3) ^ Boolean(false));
write(Array(3) ^ new Boolean(true));
write(Array(3) ^ new Boolean(false));
write(Array(3) ^ NaN);
write(Array(3) ^ +0);
write(Array(3) ^ -0);
write(Array(3) ^ 0);
write(Array(3) ^ 0.0);
write(Array(3) ^ -0.0);
write(Array(3) ^ +0.0);
write(Array(3) ^ 1);
write(Array(3) ^ 10);
write(Array(3) ^ 10.0);
write(Array(3) ^ 10.1);
write(Array(3) ^ -1);
write(Array(3) ^ -10);
write(Array(3) ^ -10.0);
write(Array(3) ^ -10.1);
write(Array(3) ^ Number.MAX_VALUE);
write(Array(3) ^ Number.MIN_VALUE);
write(Array(3) ^ Number.NaN);
write(Array(3) ^ Number.POSITIVE_INFINITY);
write(Array(3) ^ Number.NEGATIVE_INFINITY);
write(Array(3) ^ new Number(NaN));
write(Array(3) ^ new Number(+0));
write(Array(3) ^ new Number(-0));
write(Array(3) ^ new Number(0));
write(Array(3) ^ new Number(0.0));
write(Array(3) ^ new Number(-0.0));
write(Array(3) ^ new Number(+0.0));
write(Array(3) ^ new Number(1));
write(Array(3) ^ new Number(10));
write(Array(3) ^ new Number(10.0));
write(Array(3) ^ new Number(10.1));
write(Array(3) ^ new Number(-1));
write(Array(3) ^ new Number(-10));
write(Array(3) ^ new Number(-10.0));
write(Array(3) ^ new Number(-10.1));
write(Array(3) ^ new Number(Number.MAX_VALUE));
write(Array(3) ^ new Number(Number.MIN_VALUE));
write(Array(3) ^ new Number(Number.NaN));
write(Array(3) ^ new Number(Number.POSITIVE_INFINITY));
write(Array(3) ^ new Number(Number.NEGATIVE_INFINITY));
write(Array(3) ^ '');
write(Array(3) ^ 0xa);
write(Array(3) ^ 04);
write(Array(3) ^ 'hello');
write(Array(3) ^ 'hel' + 'lo');
write(Array(3) ^ String(''));
write(Array(3) ^ String('hello'));
write(Array(3) ^ String('h' + 'ello'));
write(Array(3) ^ new String(''));
write(Array(3) ^ new String('hello'));
write(Array(3) ^ new String('he' + 'llo'));
write(Array(3) ^ new Object());
write(Array(3) ^ new Object());
write(Array(3) ^ [1, 2, 3]);
write(Array(3) ^ [1 ,2 , 3]);
write(Array(3) ^ new Array(3));
write(Array(3) ^ Array(3));
write(Array(3) ^ new Array(1 ,2 ,3));
write(Array(3) ^ Array(1));
write(Array(3) ^ foo);
write(new Array(1 ,2 ,3) ^ undefined);
write(new Array(1 ,2 ,3) ^ null);
write(new Array(1 ,2 ,3) ^ true);
write(new Array(1 ,2 ,3) ^ false);
write(new Array(1 ,2 ,3) ^ Boolean(true));
write(new Array(1 ,2 ,3) ^ Boolean(false));
write(new Array(1 ,2 ,3) ^ new Boolean(true));
write(new Array(1 ,2 ,3) ^ new Boolean(false));
write(new Array(1 ,2 ,3) ^ NaN);
write(new Array(1 ,2 ,3) ^ +0);
write(new Array(1 ,2 ,3) ^ -0);
write(new Array(1 ,2 ,3) ^ 0);
write(new Array(1 ,2 ,3) ^ 0.0);
write(new Array(1 ,2 ,3) ^ -0.0);
write(new Array(1 ,2 ,3) ^ +0.0);
write(new Array(1 ,2 ,3) ^ 1);
write(new Array(1 ,2 ,3) ^ 10);
write(new Array(1 ,2 ,3) ^ 10.0);
write(new Array(1 ,2 ,3) ^ 10.1);
write(new Array(1 ,2 ,3) ^ -1);
write(new Array(1 ,2 ,3) ^ -10);
write(new Array(1 ,2 ,3) ^ -10.0);
write(new Array(1 ,2 ,3) ^ -10.1);
write(new Array(1 ,2 ,3) ^ Number.MAX_VALUE);
write(new Array(1 ,2 ,3) ^ Number.MIN_VALUE);
write(new Array(1 ,2 ,3) ^ Number.NaN);
write(new Array(1 ,2 ,3) ^ Number.POSITIVE_INFINITY);
write(new Array(1 ,2 ,3) ^ Number.NEGATIVE_INFINITY);
write(new Array(1 ,2 ,3) ^ new Number(NaN));
write(new Array(1 ,2 ,3) ^ new Number(+0));
write(new Array(1 ,2 ,3) ^ new Number(-0));
write(new Array(1 ,2 ,3) ^ new Number(0));
write(new Array(1 ,2 ,3) ^ new Number(0.0));
write(new Array(1 ,2 ,3) ^ new Number(-0.0));
write(new Array(1 ,2 ,3) ^ new Number(+0.0));
write(new Array(1 ,2 ,3) ^ new Number(1));
write(new Array(1 ,2 ,3) ^ new Number(10));
write(new Array(1 ,2 ,3) ^ new Number(10.0));
write(new Array(1 ,2 ,3) ^ new Number(10.1));
write(new Array(1 ,2 ,3) ^ new Number(-1));
write(new Array(1 ,2 ,3) ^ new Number(-10));
write(new Array(1 ,2 ,3) ^ new Number(-10.0));
write(new Array(1 ,2 ,3) ^ new Number(-10.1));
write(new Array(1 ,2 ,3) ^ new Number(Number.MAX_VALUE));
write(new Array(1 ,2 ,3) ^ new Number(Number.MIN_VALUE));
write(new Array(1 ,2 ,3) ^ new Number(Number.NaN));
write(new Array(1 ,2 ,3) ^ new Number(Number.POSITIVE_INFINITY));
write(new Array(1 ,2 ,3) ^ new Number(Number.NEGATIVE_INFINITY));
write(new Array(1 ,2 ,3) ^ '');
write(new Array(1 ,2 ,3) ^ 0xa);
write(new Array(1 ,2 ,3) ^ 04);
write(new Array(1 ,2 ,3) ^ 'hello');
write(new Array(1 ,2 ,3) ^ 'hel' + 'lo');
write(new Array(1 ,2 ,3) ^ String(''));
write(new Array(1 ,2 ,3) ^ String('hello'));
write(new Array(1 ,2 ,3) ^ String('h' + 'ello'));
write(new Array(1 ,2 ,3) ^ new String(''));
write(new Array(1 ,2 ,3) ^ new String('hello'));
write(new Array(1 ,2 ,3) ^ new String('he' + 'llo'));
write(new Array(1 ,2 ,3) ^ new Object());
write(new Array(1 ,2 ,3) ^ new Object());
write(new Array(1 ,2 ,3) ^ [1, 2, 3]);
write(new Array(1 ,2 ,3) ^ [1 ,2 , 3]);
write(new Array(1 ,2 ,3) ^ new Array(3));
write(new Array(1 ,2 ,3) ^ Array(3));
write(new Array(1 ,2 ,3) ^ new Array(1 ,2 ,3));
write(new Array(1 ,2 ,3) ^ Array(1));
write(new Array(1 ,2 ,3) ^ foo);
write(Array(1) ^ undefined);
write(Array(1) ^ null);
write(Array(1) ^ true);
write(Array(1) ^ false);
write(Array(1) ^ Boolean(true));
write(Array(1) ^ Boolean(false));
write(Array(1) ^ new Boolean(true));
write(Array(1) ^ new Boolean(false));
write(Array(1) ^ NaN);
write(Array(1) ^ +0);
write(Array(1) ^ -0);
write(Array(1) ^ 0);
write(Array(1) ^ 0.0);
write(Array(1) ^ -0.0);
write(Array(1) ^ +0.0);
write(Array(1) ^ 1);
write(Array(1) ^ 10);
write(Array(1) ^ 10.0);
write(Array(1) ^ 10.1);
write(Array(1) ^ -1);
write(Array(1) ^ -10);
write(Array(1) ^ -10.0);
write(Array(1) ^ -10.1);
write(Array(1) ^ Number.MAX_VALUE);
write(Array(1) ^ Number.MIN_VALUE);
write(Array(1) ^ Number.NaN);
write(Array(1) ^ Number.POSITIVE_INFINITY);
write(Array(1) ^ Number.NEGATIVE_INFINITY);
write(Array(1) ^ new Number(NaN));
write(Array(1) ^ new Number(+0));
write(Array(1) ^ new Number(-0));
write(Array(1) ^ new Number(0));
write(Array(1) ^ new Number(0.0));
write(Array(1) ^ new Number(-0.0));
write(Array(1) ^ new Number(+0.0));
write(Array(1) ^ new Number(1));
write(Array(1) ^ new Number(10));
write(Array(1) ^ new Number(10.0));
write(Array(1) ^ new Number(10.1));
write(Array(1) ^ new Number(-1));
write(Array(1) ^ new Number(-10));
write(Array(1) ^ new Number(-10.0));
write(Array(1) ^ new Number(-10.1));
write(Array(1) ^ new Number(Number.MAX_VALUE));
write(Array(1) ^ new Number(Number.MIN_VALUE));
write(Array(1) ^ new Number(Number.NaN));
write(Array(1) ^ new Number(Number.POSITIVE_INFINITY));
write(Array(1) ^ new Number(Number.NEGATIVE_INFINITY));
write(Array(1) ^ '');
write(Array(1) ^ 0xa);
write(Array(1) ^ 04);
write(Array(1) ^ 'hello');
write(Array(1) ^ 'hel' + 'lo');
write(Array(1) ^ String(''));
write(Array(1) ^ String('hello'));
write(Array(1) ^ String('h' + 'ello'));
write(Array(1) ^ new String(''));
write(Array(1) ^ new String('hello'));
write(Array(1) ^ new String('he' + 'llo'));
write(Array(1) ^ new Object());
write(Array(1) ^ new Object());
write(Array(1) ^ [1, 2, 3]);
write(Array(1) ^ [1 ,2 , 3]);
write(Array(1) ^ new Array(3));
write(Array(1) ^ Array(3));
write(Array(1) ^ new Array(1 ,2 ,3));
write(Array(1) ^ Array(1));
write(Array(1) ^ foo);
write(foo ^ undefined);
write(foo ^ null);
write(foo ^ true);
write(foo ^ false);
write(foo ^ Boolean(true));
write(foo ^ Boolean(false));
write(foo ^ new Boolean(true));
write(foo ^ new Boolean(false));
write(foo ^ NaN);
write(foo ^ +0);
write(foo ^ -0);
write(foo ^ 0);
write(foo ^ 0.0);
write(foo ^ -0.0);
write(foo ^ +0.0);
write(foo ^ 1);
write(foo ^ 10);
write(foo ^ 10.0);
write(foo ^ 10.1);
write(foo ^ -1);
write(foo ^ -10);
write(foo ^ -10.0);
write(foo ^ -10.1);
write(foo ^ Number.MAX_VALUE);
write(foo ^ Number.MIN_VALUE);
write(foo ^ Number.NaN);
write(foo ^ Number.POSITIVE_INFINITY);
write(foo ^ Number.NEGATIVE_INFINITY);
write(foo ^ new Number(NaN));
write(foo ^ new Number(+0));
write(foo ^ new Number(-0));
write(foo ^ new Number(0));
write(foo ^ new Number(0.0));
write(foo ^ new Number(-0.0));
write(foo ^ new Number(+0.0));
write(foo ^ new Number(1));
write(foo ^ new Number(10));
write(foo ^ new Number(10.0));
write(foo ^ new Number(10.1));
write(foo ^ new Number(-1));
write(foo ^ new Number(-10));
write(foo ^ new Number(-10.0));
write(foo ^ new Number(-10.1));
write(foo ^ new Number(Number.MAX_VALUE));
write(foo ^ new Number(Number.MIN_VALUE));
write(foo ^ new Number(Number.NaN));
write(foo ^ new Number(Number.POSITIVE_INFINITY));
write(foo ^ new Number(Number.NEGATIVE_INFINITY));
write(foo ^ '');
write(foo ^ 0xa);
write(foo ^ 04);
write(foo ^ 'hello');
write(foo ^ 'hel' + 'lo');
write(foo ^ String(''));
write(foo ^ String('hello'));
write(foo ^ String('h' + 'ello'));
write(foo ^ new String(''));
write(foo ^ new String('hello'));
write(foo ^ new String('he' + 'llo'));
write(foo ^ new Object());
write(foo ^ new Object());
write(foo ^ [1, 2, 3]);
write(foo ^ [1 ,2 , 3]);
write(foo ^ new Array(3));
write(foo ^ Array(3));
write(foo ^ new Array(1 ,2 ,3));
write(foo ^ Array(1));
write(foo ^ foo);
